package chapter03.factoryMethod;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import java.io.*;
class ReadXML1
{
//该方法用于从XML配置文件中提取具体类类名，并返回一个实例对象
	public static Object getObject()
	{
		try
		{
			//创建文档对象
			DocumentBuilderFactory dFactory = DocumentBuilderFactory.newInstance();
			DocumentBuilder builder = dFactory.newDocumentBuilder();
			Document doc;							
			doc = builder.parse(new File("src/chapter03/factoryMethod/config1.xml")); 		
			//获取包含类名的文本节点
			NodeList nl = doc.getElementsByTagName("className");
            Node classNode=nl.item(0).getFirstChild();
            String cName="chapter03.factoryMethod."+classNode.getNodeValue();
            //System.out.println("新类名："+cName);
            //通过类名生成实例对象并将其返回
            Class<?> c=Class.forName(cName);
	  	    Object obj=c.newInstance();
            return obj;
         }   
         catch(Exception e)
         {
           		e.printStackTrace();
           		return null;
         }
	}
}
